

<!DOCTYPE html>
<html lang="zh-CN">

<head><meta name="generator" content="Hexo 3.9.0">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>【流水账】iptables 常用指令 - 杨云召 | 博客</title>
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  <meta name="google" content="notranslate">

  
  
  <meta name="description" content="
写博客是个好习惯，但是写的人水平参差不齐，我见过最搞..."> 
  
  <meta name="author" content="杨云召（Flywith24）"> 

  
    <link rel="icon" href="/images/icons/favicon-16x16.png" type="image/png" sizes="16x16">
  
  
    <link rel="icon" href="/images/icons/favicon-32x32.png" type="image/png" sizes="32x32">
  
  
    <link rel="apple-touch-icon" href="/images/icons/apple-touch-icon.png" sizes="180x180">
  
  
    <meta rel="mask-icon" href="/images/icons/stun-logo.svg" color="#333333">
  
  
    <meta rel="msapplication-TileImage" content="/images/icons/favicon-144x144.png">
    <meta rel="msapplication-TileColor" content="#000000">
  

  <link rel="stylesheet" href="/css/style.css">

  
  <link rel="stylesheet" href="//at.alicdn.com/t/font_1445822_hhodbqn7tit.css">
  

  
  
  <link rel="stylesheet" href="https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.css">
  

  
  
  <link rel="stylesheet" href="https://cdn.bootcss.com/highlight.js/9.18.1/styles/xcode.min.css">
  

  <script>
    var CONFIG = window.CONFIG || {};
    var ZHAOO = window.ZHAOO || {};
    CONFIG = {
      isHome: false,
      fancybox: true,
      pjax: false,
      lazyload: {
        enable: true,
        loadingImage: '/images/theme/loading.gif',
      },
      donate: {
        enable: true,
        alipay: 'https://gitee.com/flywith24/Album/raw/master/img/20201015113301.jpg',
        wechat: 'https://gitee.com/flywith24/Album/raw/master/img/20201015112814.png'
      },
      motto: {
        api: '',
        default: '不人云亦云，只求接近真相.'
      },
      galleries: {
        enable: true
      },
      fab: {
        enable: true,
        alwaysShow: false
      },
      carrier: {
        enable: true
      },
      daovoice: {
        enable: true
      }
    }
  </script>

  

  
</head></html>
<body class="lock-screen">
  <div class="loading"></div>
  


<nav class="navbar">
  <div class="left"></div>
  <div class="center">【流水账】iptables 常用指令</div>
  <div class="right">
    <i class="iconfont iconmenu j-navbar-menu"></i>
  </div>
</nav>

  <nav class="menu">
  <div class="menu-wrap">
    <div class="menu-close">
      <i class="iconfont iconbaseline-close-px"></i>
    </div>
    <ul class="menu-content">
      
      
      
      
      <li class="menu-item"><a href="/ " class="underline"> 首页</a></li>
      
      
      
      
      <li class="menu-item"><a href="/archives " class="underline"> 归档</a></li>
      
      
      
      
      <li class="menu-item"><a href="/tags " class="underline"> 标签</a></li>
      
      
      
      
      <li class="menu-item"><a href="/categories " class="underline"> 分类</a></li>
      
      
      
      
      <li class="menu-item"><a href="/about " class="underline"> 关于</a></li>
      
    </ul>
    <div class="menu-copyright"><p>Copyright© 2017 - 2020 ❤️ Flywith24</p></div>
  </div>
</nav>
  <main id="main">
  <div class="container" id="container">
    <article class="article">
  <div class="wrap">
    <section class="head">
  <img   class="lazyload" data-original="https://gitee.com/flywith24/Album/raw/master/img/20201015091556.png" src=""  draggable="false">
  <div class="head-mask">
    <h1 class="head-title">【流水账】iptables 常用指令</h1>
    <div class="head-info">
      <span class="post-info-item"><i class="iconfont iconcalendar"></i>八月 29, 2019</span
        class="post-info-item">
      
      <span class="post-info-item"><i class="iconfont iconfont-size"></i>7230</span>
    </div>
  </div>
</section>
    <section class="main">
      <section class="content">
        <h2 id="规则查询"><a href="#规则查询" class="headerlink" title="规则查询"></a>规则查询</h2><h3 id="查看指定表中的规则"><a href="#查看指定表中的规则" class="headerlink" title="查看指定表中的规则"></a>查看指定表中的规则</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -L<br></code></pre></td></tr></table></figure>

<p>使用 <code>-t</code> 选项，指定要操作的表，使用 <code>-L</code> 选项，查看-t选项对应的表的规则， <code>-L</code> 选项的意思是，列出规则。所以，上述命令的含义为列出filter表的所有规则。</p>
<p><code>filter</code> 可替换为 <code>raw</code> <code>mangle</code> <code>nat</code></p>
<p>如果仅查看 <code>filter</code> 可以省略 <code>-t filter</code> ，当没有使用 <code>-t</code> 选项指定表时，默认为操作 <code>filter</code> 表，即 <code>iptables -L</code> 表示列出 <code>filter</code> 表中的所有规则。</p>
<h3 id="查看指定表中的指定链的规则"><a href="#查看指定表中的指定链的规则" class="headerlink" title="查看指定表中的指定链的规则"></a>查看指定表中的指定链的规则</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -L INPUT<br></code></pre></td></tr></table></figure>

<p>只查看 <code>filter</code> 表中 <code>INPUT</code> 链的规则</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -vL INPUT<br></code></pre></td></tr></table></figure>

<p>使用 <code>-v</code> 查看更多，更详细的信息</p>
<h3 id="不让ip进行反解"><a href="#不让ip进行反解" class="headerlink" title="不让ip进行反解"></a>不让ip进行反解</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -nvL<br></code></pre></td></tr></table></figure>

<p><code>iptables</code> 默认进行了名称解析，但是在规则非常多的情况下如果进行名称解析，效率会比较低。使用 <code>-n</code> 选项，表示不对 <code>ip</code> 地址进行名称反解，直接显示 <code>ip</code> 地址</p>
<p>只查看某个链的规则，并且不让 <code>ip</code> 进行反解，<code>iptables -nvL INPUT</code></p>
<h3 id="显示规则编号"><a href="#显示规则编号" class="headerlink" title="显示规则编号"></a>显示规则编号</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables --line-number -nvL INPUT<br>或<br>iptables --line -nvL INPUT<br></code></pre></td></tr></table></figure>

<h2 id="规则管理"><a href="#规则管理" class="headerlink" title="规则管理"></a>规则管理</h2><h3 id="添加规则"><a href="#添加规则" class="headerlink" title="添加规则"></a>添加规则</h3><p><font color="#ff0000">注意：添加规则时，规则的顺序非常重要</font></p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 在指定表的指定链的尾部添加一条规则，-A选项表示在对应链的末尾添加规则<br>命令语法：iptables -t 表名 -A 链名 匹配条件 -j 动作<br>示例：iptables -t filter -A OUTPUT -s 192.168.10.225 -j DROP<br><span class="hljs-meta"><br>#</span> 在指定表的指定链的首部添加一条规则，-I选型表示在对应链的开头添加规则<br>命令语法：iptables -t 表名 -I 链名 匹配条件 -j 动作<br>示例： iptables -t filter -I OUTPUT -s 192.168.10.225 -j ACCEPT<br><span class="hljs-meta"><br>#</span> 在指定表的指定链的指定位置添加一条规则<br>命令语法：iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作<br>示例： iptables -t filter -I OUTPUT 3 -s 192.168.10.225 -j REJECT<br><span class="hljs-meta"><br>#</span> 设置指定表的指定链的默认策略（默认动作），并非添加规则<br>命令语法：iptables -t 表名 -P 链名 动作<br>示例：iptables -t filter -P FORWARD ACCEPT<br></code></pre></td></tr></table></figure>

<h3 id="删除规则"><a href="#删除规则" class="headerlink" title="删除规则"></a>删除规则</h3><p><font color="ff0000">注意：如果没有保存规则，删除规则时请慎重</font></p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 按照规则序号删除规则，删除指定表的指定链的指定规则，-D选项表示删除对应链中的规则<br>命令语法：iptables -t 表名 -D 链名 规则序号<br>示例：iptables -t filter -D INPUT 3<br><span class="hljs-meta"><br>#</span> 按照具体的匹配条件与动作删除规则，删除指定表的指定链的指定规则<br>命令语法：iptables -t 表名 -D 链名 匹配条件 -j 动作<br>示例：iptables -t filter -D INPUT -s 192.168.10.225 -j DROP<br><span class="hljs-meta"><br>#</span> 删除指定表的指定链中的所有规则，-F选项表示清空对应链中的规则<br>命令语法：iptables -t 表名 -F 链名<br>示例：iptables -t filter -F INPUT<br><span class="hljs-meta"><br>#</span> 删除指定表中的所有规则<br>命令语法：iptables -t 表名 -F<br>示例：iptables -t filter -F OUTPUT<br></code></pre></td></tr></table></figure>

<h3 id="修改规则"><a href="#修改规则" class="headerlink" title="修改规则"></a>修改规则</h3><p><font color="ff0000">注意：如果使用-R选项修改规则中的动作，那么必须指明原规则中的原匹配条件，例如源ip，目标ip等</font></p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 修改指定表中指定链的指定规则，-R选项表示修改对应链中的规则，使用-R选项时要同时指定对应的链以及规则对应的序号，并且规则中原本的匹配条件不可省略<br>命令语法：iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作<br>示例：iptables -t filter -R INPUT 3 -s 192.168.10.225 -j ACCEPT<br></code></pre></td></tr></table></figure>

<p>上述示例表示修改 <code>filter</code> 表中 <code>INPUT</code> 链的第3条规则，将这条规则的动作修改为 <code>ACCEPT</code> ， <code>-s</code>  <code>192.168.10.225</code> 为这条规则中原本的匹配条件，如果省略此匹配条件，修改后的规则中的源地址可能会变为 <code>0.0.0.0/0</code></p>
<p>其他修改规则的方法：先通过编号删除规则，再在原编号位置添加一条规则</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 修改指定表的指定链的默认策略（默认动作），并非修改规则<br>命令语法：iptables -t 表名 -P 链名 动作<br>示例：iptables -t filter -P FORWARD ACCEPT<br></code></pre></td></tr></table></figure>

<h3 id="保存规则"><a href="#保存规则" class="headerlink" title="保存规则"></a>保存规则</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 保存规则命令，表示将iptables规则保存至/etc/sysconfig/iptables文件中<br>service iptables save<br></code></pre></td></tr></table></figure>

<h2 id="匹配条件"><a href="#匹配条件" class="headerlink" title="匹配条件"></a>匹配条件</h2><h3 id="基本匹配条件"><a href="#基本匹配条件" class="headerlink" title="基本匹配条件"></a>基本匹配条件</h3><p><code>-s</code> 用于匹配报文的源地址,可以同时指定多个源地址，每个 <code>ip</code> 之间用逗号隔开，也可以指定为一个网段</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I INPUT -s 192.168.10.111,192.168.10.225 -j DROP<br>iptables -t filter -I INPUT -s 192.168.10.0/24 -j ACCEPT<br>iptables -t filter -I INPUT ! -s 192.168.10.0/24 -j ACCEPT<br></code></pre></td></tr></table></figure>

<p><code>-d</code> 用于匹配报文的目标地址,可以同时指定多个目标地址，每个 <code>ip</code> 之间用逗号隔开，也可以指定为一个网段</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I OUTPUT -d 192.168.10.111,192.168.10.225 -j DROP<br>iptables -t filter -I INPUT -d 192.168.10.0/24 -j ACCEPT<br>iptables -t filter -I INPUT ! -d 192.168.10.0/24 -j ACCEPT<br></code></pre></td></tr></table></figure>

<p><code>-p</code> 用于匹配报文的协议类型,可以匹配的协议类型 <code>tcp</code> 、<code>udp</code> 、<code>udplite</code> 、<code>icmp</code> 、<code>esp</code> 、<code>ah</code> 、<code>sctp</code> 等</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I INPUT -p tcp -s 192.168.10.146 -j ACCEPT<br>iptables -t filter -I INPUT ! -p udp -s 192.168.10.146 -j ACCEPT<br></code></pre></td></tr></table></figure>

<h3 id="扩展匹配条件"><a href="#扩展匹配条件" class="headerlink" title="扩展匹配条件"></a>扩展匹配条件</h3><ol>
<li><p><code>tcp</code> 扩展模块</p>
<p><code>-p tcp -m tcp --sport</code> 用于匹配 <code>tcp</code> 协议报文的源端口，可以使用冒号指定一个连续的端口范围<br><code>-p tcp -m tcp --dport</code> 用于匹配 <code>tcp</code> 协议报文的目标端口，可以使用冒号指定一个连续的端口范围</p>
 <figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I OUTPUT -d 192.168.10.225 -p tcp -m tcp --sport 22 -j REJECT<br>iptables -t filter -I INPUT -s 192.168.10.225 -p tcp -m tcp --dport 22:25 -j REJECT<br>iptables -t filter -I INPUT -s 192.168.10.225 -p tcp -m tcp --dport :22 -j REJECT<br>iptables -t filter -I INPUT -s 192.168.10.225 -p tcp -m tcp --dport 80: -j REJECT<br>iptables -t filter -I OUTPUT -d 192.168.10.225 -p tcp -m tcp ! --sport 22 -j ACCEPT<br></code></pre></td></tr></table></figure>
</li>
<li><p><code>multiport</code> 扩展模块</p>
<p><code>-p tcp -m multiport --sports</code> 用于匹配报文的源端口，可以指定离散的多个端口号,端口之间用”逗号”隔开<br><code>-p udp -m multiport --dports</code> 用于匹配报文的目标端口，可以指定离散的多个端口号，端口之间用”逗号”隔开</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I OUTPUT -d 192.168.10.225 -p udp -m multiport --sports 137,138 -j REJECT<br>iptables -t filter -I INPUT -s 192.168.10.225 -p tcp -m multiport --dports 22,80 -j REJECT<br>iptables -t filter -I INPUT -s 192.168.10.225 -p tcp -m multiport ! --dports 22,80 -j REJECT<br>iptables -t filter -I INPUT -s 192.168.10.225 -p tcp -m multiport --dports 80:88 -j REJECT<br>iptables -t filter -I INPUT -s 192.168.10.225 -p tcp -m multiport --dports 22,80:88 -j REJECT<br></code></pre></td></tr></table></figure>



</li>
</ol>
<ol start="3">
<li><p><code>udp</code> 模块</p>
<p><code>--sport</code> 匹配 <code>udp</code> 报文的源地址<br><code>--dport</code> 匹配 <code>udp</code> 报文的目标地址</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 可以结合multiport模块指定多个离散的端口<br>iptables -t filter -I INPUT -p udp -m udp --dport 137 -j ACCEPT<br>iptables -t filter -I INPUT -p udp -m udp --dport 137:157 -j ACCEPT<br></code></pre></td></tr></table></figure>



</li>
</ol>
<ol start="4">
<li><p><code>icmp</code> 模块</p>
<p><code>--icmp-type</code> 匹配 <code>icmp</code> 报文的具体类型</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I INPUT -p icmp -m icmp --icmp-type 8/0 -j REJECT<br>iptables -t filter -I INPUT -p icmp --icmp-type 8 -j REJECT<br>iptables -t filter -I OUTPUT -p icmp -m icmp --icmp-type 0/0 -j REJECT<br>iptables -t filter -I OUTPUT -p icmp --icmp-type 0 -j REJECT<br>iptables -t filter -I INPUT -p icmp --icmp-type "echo-request" -j REJECT<br></code></pre></td></tr></table></figure>



</li>
</ol>
<ol start="5">
<li><p><code>iprange</code> 模块</p>
<p><code>--src-range</code> 指定连续的源地址范围<br><code>--dst-range</code> 指定连续的目标地址范围</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I INPUT -m iprange --src-range 192.168.10.127-192.168.10.146 -j DROP<br>iptables -t filter -I OUTPUT -m iprange --dst-range 192.168.10.127-192.168.10.146 -j DROP<br>iptables -t filter -I INPUT -m iprange ! --src-range 192.168.10.127-192.168.10.146 -j DROP<br></code></pre></td></tr></table></figure>
</li>
<li><p><code>stirng</code> 模块</p>
<p><code>--algo</code> 指定对应的匹配算法，可用算法为 <code>bm</code> 、<code>kmp</code>，此选项为必需选项。<br><code>--string</code> 指定需要匹配的字符串</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "baidu" -j REJECT<br>iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "baidu" -j REJECT<br></code></pre></td></tr></table></figure>



</li>
</ol>
<ol start="7">
<li><p><code>time</code> 模块 </p>
<p><code>--timestart</code> 用于指定时间范围的开始时间，不可取反<br><code>--timestop</code> 用于指定时间范围的结束时间，不可取反<br><code>--weekdays</code> 用于指定”星期几”，可取反<br><code>--monthdays</code> 用于指定”几号”，可取反<br><code>--datestart</code> 用于指定日期范围的开始日期，不可取反<br><code>--datestop</code> 用于指定日期范围的结束时间，不可取反</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT<br>iptables -t filter -I OUTPUT -p tcp --dport 443 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT<br>iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --weekdays 6,7 -j REJECT<br>iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --monthdays 22,23 -j REJECT<br>iptables -t filter -I OUTPUT -p tcp --dport 80  -m time ! --monthdays 22,23 -j REJECT<br>iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays 6,7 -j REJECT<br>iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --weekdays 5 --monthdays 22,23,24,25,26,27,28 -j REJECT<br>iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --datestart 2017-12-24 --datestop 2017-12-27 -j REJECT<br></code></pre></td></tr></table></figure>



</li>
</ol>
<ol start="8">
<li><p><code>connlimit</code> 模块</p>
<p><code>--connlimit-above</code> 单独使用此选项时，表示限制每个 <code>ip</code> 的链接数量。<br><code>--connlimit-mask</code>  此选项不能单独使用，在使用 <code>--connlimit-above</code> 选项时，配合此选项，则可以针对”某类 <code>ip</code> 段内的一定数量的 <code>ip</code> “进行连接数量的限制</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT<br>iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT<br>iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 --connlimit-mask 27 -j REJECT<br></code></pre></td></tr></table></figure>



</li>
</ol>
<ol start="9">
<li><p><code>limit</code> 模块</p>
<p><code>--limit-burst</code> 此选项用于指定令牌桶中令牌的最大数量<br><code>--limit</code> 此选项用于指定令牌桶中生成新令牌的频率，可用时间单位有second、minute 、hour、day</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs shell">iptables -t filter -I INPUT -p icmp -m limit --limit-burst 3 --limit 10/minute -j ACCEPT<br>iptables -t filter -A INPUT -p icmp -j REJECT<br></code></pre></td></tr></table></figure>



</li>
</ol>
<h2 id="自定义链"><a href="#自定义链" class="headerlink" title="自定义链"></a>自定义链</h2><h3 id="创建自定义链"><a href="#创建自定义链" class="headerlink" title="创建自定义链"></a>创建自定义链</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 在filter表中创建yyz自定义链<br>iptables -N yyz<br></code></pre></td></tr></table></figure>

<h3 id="引用自定义链"><a href="#引用自定义链" class="headerlink" title="引用自定义链"></a>引用自定义链</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 在OUTPUT链中引用刚才创建的自定义链<br>iptables -I OUTPUT -j yyz<br></code></pre></td></tr></table></figure>

<h3 id="重命名自定义链"><a href="#重命名自定义链" class="headerlink" title="重命名自定义链"></a>重命名自定义链</h3><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 将yyz自定义链重命名为test<br>iptabels -E yyz test<br></code></pre></td></tr></table></figure>

<h3 id="删除自定义链"><a href="#删除自定义链" class="headerlink" title="删除自定义链"></a>删除自定义链</h3><p>删除自定义链需要满足两个条件</p>
<ol>
<li>自定义链中没有被引用</li>
<li>自定义链中没有任何规则</li>
</ol>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs shell"><span class="hljs-meta">#</span> 删除引用计数为0且不包含任何规则的test链<br>iptabels -X test<br></code></pre></td></tr></table></figure>
      </section>
      <section class="extra">
        
        <ul class="copyright">
  
  <li><strong>本文作者：</strong>杨云召（Flywith24）</li>
  <li><strong>本文链接：</strong><a href="https://flywith24.gitee.io/2019/08/29/iptabels/index.html">https://flywith24.gitee.io/2019/08/29/iptabels/index.html</a></li>
  <li><strong>版权声明：</strong>本博客所有文章均采用<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh"
      rel="external nofollow" target="_blank"> BY-NC-SA </a>许可协议，转载请注明出处！</li>
  
</ul>
        
        
        <section class="donate">
  <div class="qrcode">
    <img   class="lazyload" data-original="https://gitee.com/flywith24/Album/raw/master/img/20201015113301.jpg" src="" >
  </div>
  <div class="icon">
    <a href="javascript:;" id="alipay"><i class="iconfont iconalipay"></i></a>
    <a href="javascript:;" id="wechat"><i class="iconfont iconwechat-fill"></i></a>
  </div>
</section>
        
        
  <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/ROM/">ROM</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/framework/">framework</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/iptables/">iptables</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/流水账/">流水账</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/网络黑白名单/">网络黑白名单</a></li></ul>

        
<nav class="nav">
  
    <a href="/2019/08/30/Xposed/"><i class="iconfont iconleft"></i>【流水账】Xposed模块开发</a>
  
  
    <a href="/2019/08/16/Framework-Option/">记录Framework开发的常用指令<i class="iconfont iconright"></i></a>
  
</nav>

      </section>
      
      <section class="comments">
  
  <div class="btn" id="comments-btn">查看评论</div>
  
  
<div id="valine"></div>
<script defer src="//unpkg.com/valine/dist/Valine.min.js"></script>
<script>
  window.onload = function () {
    var loadValine = function () {
      new Valine({
        el: '#valine',
        app_id: "SHA3gzCcxFlqaPcGRnX4UgET-gzGzoHsz",
        app_key: "OYo7ITS4AzTvBUvb1yIY8oaf",
        placeholder: "期待你的留言",
        avatar: "mp",
        pageSize: "10",
        lang: "zh-CN",
      });
    }
    if ( true ) {
      $("#comments-btn").on("click", function () {
        $(this).hide();
        loadValine();
      });
    } else {
      loadValine();
    }
  };
</script>

</section>
      
    </section>
  </div>
</article>
  </div>
</main>
  <footer class="footer">
  <div class="footer-social">
    
    
    
    
    
    <a href="tencent://message/?Menu=yes&uin=1032367864 " target="_blank" onMouseOver="this.style.color= '#12B7F5'"
      onMouseOut="this.style.color='#33333D'">
      <i class="iconfont footer-social-item  iconQQ "></i>
    </a>
    
    
    
    
    
    <a href="javascript:; " target="_blank" onMouseOver="this.style.color= '#8bc34a'"
      onMouseOut="this.style.color='#33333D'">
      <i class="iconfont footer-social-item  iconwechat-fill "></i>
    </a>
    
    
    
    
    
    <a href="https://flywith24.gitee.io/about/ " target="_blank" onMouseOver="this.style.color= '#d32f2f'"
      onMouseOut="this.style.color='#33333D'">
      <i class="iconfont footer-social-item  iconheart "></i>
    </a>
    
    
    
    
    
    <a href="https://github.com/Flywith24 " target="_blank" onMouseOver="this.style.color= '#24292E'"
      onMouseOut="this.style.color='#33333D'">
      <i class="iconfont footer-social-item  icongithub-fill "></i>
    </a>
    
    
    
    
    
    <a href="mailto:youngyunzhao@163.com " target="_blank" onMouseOver="this.style.color='#FFBE5B'"
      onMouseOut="this.style.color='#33333D'">
      <i class="iconfont footer-social-item  iconmail"></i>
    </a>
    
  </div>
  <div class="footer-copyright"><p>Copyright© 2017 - 2020 ❤️ Flywith24</p></div>
</footer>
  
      <div class="fab fab-plus">
    <i class="iconfont iconplus"></i>
  </div>
  
  <div class="fab fab-daovoice">
    <i class="iconfont iconcomment"></i>
  </div>
  
  <div class="fab fab-up">
    <i class="iconfont iconcaret-up"></i>
  </div>
  
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/shizuku.model.json"},"display":{"position":"left","width":150,"height":300},"mobile":{"show":"tfalse"},"log":false});</script></body>

<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>




<script src="https://cdn.bootcdn.net/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>




<script src="https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.js"></script>




<script src="/js/utils.js"></script>
<script src="/js/modules.js"></script>
<script src="/js/zui.js"></script>
<script src="/js/script.js"></script>




<script>
  (function (i, s, o, g, r, a, m) {
    i["DaoVoiceObject"] = r;
    i[r] = i[r] || function () {
      (i[r].q = i[r].q || []).push(arguments)
    }, i[r].l = 1 * new Date();
    a = s.createElement(o), m = s.getElementsByTagName(o)[0];
    a.async = 1;
    a.src = g;
    a.charset = "utf-8";
    m.parentNode.insertBefore(a, m)
  })(window, document, "script", ('https:' == document.location.protocol ? 'https:' : 'http:') +
    "//widget.daovoice.io/widget/0f81ff2f.js", "daovoice")
  daovoice('init', {
    app_id: "7785620b"
  }, {
    launcher: {
      disableLauncherIcon: true,
    },
  });
  daovoice('update');
</script>



<script>
  (function () {
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
      bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    } else {
      bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
  })();
</script>


<script>
  var _hmt = _hmt || [];
  (function () {
    var hm = document.createElement("script");
    hm.src = "https://hm.baidu.com/hm.js?4c204d8bc027a0455b5fc642ac334ca8";
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(hm, s);
  })();
</script>










</html>